package scream.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import scream.excepcion.DAOExcepcion;
import scream.modelo.Poder;
import scream.modelo.TipoProductoServicio;

import scream.negocio.SeguridadNegocioPoder;
import scream.negocio.SeguridadNegocioTipoProductoServicio;

@WebServlet("/PoderServlet")
public class PoderServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;
	
	/**
     * @see HttpServlet#HttpServlet()
     */
    public PoderServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    /**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String accion=request.getParameter("accion");
		if (accion==null)
			action(request,response);
		else if(accion.equals("1"))
		{
			carga(request,response);
		}
		else if(accion.equals("2")){
			registrar(request,response);
		}
		else{
			
		}
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String accion=request.getParameter("accion");
		if (accion==null)
			action(request,response);
		else if(accion.equals("1"))
		{
			carga(request,response);
		}
		else if(accion.equals("2")){
			registrar(request,response);
		}
		else{
			
		}

		
	}
	private void registrar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String codigo=request.getParameter("txtCodigo");
		String descripcion=request.getParameter("txtDescripcion");
		String tipoProductoServicio=request.getParameter("tipoProductoServicio");
		
		SeguridadNegocioPoder negocio=new SeguridadNegocioPoder();
		SeguridadNegocioTipoProductoServicio objNegocio =new SeguridadNegocioTipoProductoServicio();
		
		Collection<TipoProductoServicio> tipoProductoServicios=new ArrayList<TipoProductoServicio>();
		System.out.println(tipoProductoServicio);
	
		try{ 
			negocio.insertarPoder(codigo, descripcion, tipoProductoServicio);
			tipoProductoServicios=objNegocio.listarTipoProductoServicio("");
			
			request.setAttribute("MSGREG", "Se registro con exito");
			
			request.setAttribute("TIPOPRODUCTOSERVICIO", tipoProductoServicios);
			RequestDispatcher rd=request.getRequestDispatcher("agregarPoder.jsp");
			rd.forward(request, response);
			
		}
		catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			request.setAttribute("MSGREG", "Error: " + e.getMessage());
			RequestDispatcher rd=request.getRequestDispatcher("agregarPoder.jsp");
			rd.forward(request, response);
		}
		
	}
	private void carga(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String desc = request.getParameter("txtDescripcion");
		if (desc==null)
			desc="";
		System.out.println(desc);
		Collection<TipoProductoServicio> tipoProductoServicios=new ArrayList<TipoProductoServicio>();
		
		SeguridadNegocioTipoProductoServicio negocio=new SeguridadNegocioTipoProductoServicio();
		
		try {
			
			tipoProductoServicios=negocio.listarTipoProductoServicio(desc);
			System.out.println(tipoProductoServicios.size());
			request.setAttribute("TIPOPRODUCTOSERVICIO", tipoProductoServicios);
			RequestDispatcher rd=request.getRequestDispatcher("/agregarPoder.jsp");
			rd.forward(request, response);
			
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private void action(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		
		String desc = request.getParameter("txtDescripcion");
		if (desc==null)
			desc="";
		System.out.println(desc);
		Collection<Poder> poderes=new ArrayList<Poder>();
		
		SeguridadNegocioPoder negocio=new SeguridadNegocioPoder();
		
		try {
			System.out.println("Entro a doPost");
			poderes=negocio.listarPoder(desc);
			System.out.println(poderes.size());
			request.setAttribute("PODERES", poderes);
			RequestDispatcher rd=request.getRequestDispatcher("/consultaPoder.jsp");
			rd.forward(request, response);
			
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	
}
